﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyBanHang_NewApp.BUS;
using QuanLyBanHang_NewApp.Entity;

namespace QuanLyBanHang_NewApp
{
    public partial class FormQLND : Form
    {
        private NhanVienBUS nvBUS;
        private bool them = false;
        public FormQLND(int quyen)
        {
            InitializeComponent();
            nvBUS = new NhanVienBUS();
            if (quyen == 0) panelButton.Enabled = false;
        }

        private void FormQLND_Load(object sender, EventArgs e)
        {
            datagridNguoidung.DataSource = nvBUS.getAllUser();
            datagridNguoidung.Columns[0].HeaderText = "Mã nhân viên";
            datagridNguoidung.Columns[1].HeaderText = "Họ tên";
            datagridNguoidung.Columns[2].HeaderText = "Lương";
            datagridNguoidung.Columns[3].HeaderText = "Địa chỉ";
            datagridNguoidung.Columns[4].HeaderText = "Số điện thoại";
            datagridNguoidung.Columns[5].HeaderText = "Tài khoản";
            datagridNguoidung.Columns[6].HeaderText = "Mật khẩu";
            datagridNguoidung.Columns[7].HeaderText = "Quyền";
        }

        private void btn_timkiem_Click(object sender, EventArgs e)
        {
            try
            {
                datagridNguoidung.DataSource = nvBUS.getUserByName(txtTimkiem.Text);
            }
            catch (Exception)
            {
                MessageBox.Show("Không tìm thấy !!");
            }
        }

        private void btn_them_Click(object sender, EventArgs e)
        {
            panelInput.Enabled = true;
            panelButton.Enabled = false;
            them = true;
            btn_huy.Enabled = true;
            btn_luu.Enabled = true;
        }

        private void btn_sua_Click(object sender, EventArgs e)
        {
            try
            {
                panelInput.Enabled = true;
                panelButton.Enabled = false;
                btn_huy.Enabled = true;
                btn_luu.Enabled = true;
                txtMand.Text = datagridNguoidung.SelectedRows[0].Cells[0].Value.ToString();
                txtHoten.Text = datagridNguoidung.SelectedRows[0].Cells[1].Value.ToString();
                txtLuong.Text = datagridNguoidung.SelectedRows[0].Cells[2].Value.ToString();
                txtDiachi.Text = datagridNguoidung.SelectedRows[0].Cells[3].Value.ToString();
                txtDienthoai.Text = datagridNguoidung.SelectedRows[0].Cells[4].Value.ToString();
                txtTaikhoan.Text = datagridNguoidung.SelectedRows[0].Cells[5].Value.ToString();
                txtMatkhau.Text = datagridNguoidung.SelectedRows[0].Cells[6].Value.ToString();
                txtQuyen.Text = datagridNguoidung.SelectedRows[0].Cells[7].Value.ToString();
                txtTaikhoan.Enabled = false;
            }
            catch (Exception)
            {
                MessageBox.Show("Bạn chưa chọn người dùng để sửa");
                txtMand.Text = "";
                txtHoten.Text = "";
                txtDiachi.Text = "";
                txtDienthoai.Text = "";
                txtLuong.Text = "";
                txtTaikhoan.Text = "";
                txtMatkhau.Text = "";
                txtQuyen.Text = "";
                panelButton.Enabled = true;
                panelInput.Enabled = false;
                btn_huy.Enabled = false;
                btn_luu.Enabled = false;
                them = false;
                txtTaikhoan.Enabled = true;
            }

        }

        private void btn_xoa_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có chắc muốn xóa nhân viên này?", "Confirm", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    int id = int.Parse(datagridNguoidung.SelectedRows[0].Cells[0].Value.ToString());
                    nvBUS.xoaUser(id);
                    datagridNguoidung.DataSource = nvBUS.getAllUser();
                    MessageBox.Show("Xóa nhân viên thành công");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Chọn nhân viên cần xóa");
            }
        }

        private void btn_huy_Click(object sender, EventArgs e)
        {
            txtMand.Text = "";
            txtHoten.Text = "";
            txtDiachi.Text = "";
            txtDienthoai.Text = "";
            txtLuong.Text = "";
            txtTaikhoan.Text = "";
            txtMatkhau.Text = "";
            txtQuyen.Text = "";
            txtTaikhoan.Enabled = true;
            panelButton.Enabled = true;
            panelInput.Enabled = false;
            btn_huy.Enabled = false;
            btn_luu.Enabled = false;
            them = false;
        }

        private void btn_thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btn_luu_Click(object sender, EventArgs e)
        {
            try
            {
                if (them)
                {
                    NhanVien nv = new NhanVien(0, txtHoten.Text, long.Parse(txtLuong.Text), txtDiachi.Text, txtDienthoai.Text, txtTaikhoan.Text, txtMatkhau.Text, int.Parse(txtQuyen.Text));
                    if (nvBUS.themUser(nv))
                    {
                        try
                        {
                            MessageBox.Show("Thêm nhân viên thành công");
                            datagridNguoidung.DataSource = nvBUS.getAllUser();
                            txtHoten.Text = "";
                            txtDiachi.Text = "";
                            txtDienthoai.Text = "";
                            txtLuong.Text = "";
                            txtTaikhoan.Text = "";
                            txtMatkhau.Text = "";
                            txtQuyen.Text = "";
                            them = false;
                            panelButton.Enabled = true;
                            panelInput.Enabled = false;
                            btn_huy.Enabled = false;
                            btn_luu.Enabled = false;
                        }
                        catch(Exception exc)
                        {
                            MessageBox.Show(exc.Message);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Lỗi khi thêm người dùng!");
                        
                    }
                }
                else
                {
                    NhanVien nv = new NhanVien(long.Parse(txtMand.Text), txtHoten.Text, long.Parse(txtLuong.Text), txtDiachi.Text, txtDienthoai.Text, txtTaikhoan.Text, txtMatkhau.Text, int.Parse(txtQuyen.Text));
                    if (nvBUS.suaUser(nv))
                    {
                        MessageBox.Show("Cập nhật nhân viên thành công");
                        datagridNguoidung.DataSource = nvBUS.getAllUser();
                        txtMand.Text = "";
                        txtHoten.Text = "";
                        txtDiachi.Text = "";
                        txtDienthoai.Text = "";
                        txtLuong.Text = "";
                        txtTaikhoan.Text = "";
                        txtMatkhau.Text = "";
                        txtQuyen.Text = "";
                        panelButton.Enabled = true;
                        panelInput.Enabled = false;
                        btn_huy.Enabled = false;
                        btn_luu.Enabled = false;
                        txtTaikhoan.Enabled = true;
                    }
                    else
                    {
                        MessageBox.Show("Lỗi khi thay đổi thông tin người dùng!");
                        
                    }
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Có lỗi !!");
            }
        }

        private void txtDienthoai_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtQuyen_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(((e.KeyChar != '0' && e.KeyChar != '1' && !Char.IsControl(e.KeyChar)) || (txtQuyen.Text.Length>0 && !Char.IsControl(e.KeyChar))))
            {
                e.Handled = true;
            }
        }
    }
}
